Page buffer for an electronic gray-scale color printer

ABSTRACT

A data storage system for an electronic color printer which stores data according to what information the data represents. When the data represents area fill and image information, the data is stored in the page buffer according to mode 1 of the invention wherein a plurality of pixels are all defined to have the same color. This color is defined in the memory in a uniform color space format. When the data to be stored is representing text or line graphics information, the data is stored in the page buffer according to mode 2 of the invention. In mode 2, two-bit binary values in the page buffer are assigned to each pixel of a multi-pixel cell. These two-bit values point to additional bytes in the memory block of the page buffer which in turn point to discrete colors in a spectrum of 256 colors. Thus, each pixel within the pixel cell can be printed in a color selected by the color portion of the page buffer. According to mode 3 of the invention, three separate color maps are defined in binary form by the bit patterns stored in the page buffer memory. By standardizing on the memory allocated to the paage and utilizing this memory in different ways according to the nature of the inputted information, the printed page can be accurately stored with a minimum of memory space without a reduction in perceived printing quality.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates, in general, to electronic color printers and,more specifically, to apparatus and methods of storing page data inmemory buffers of electronic color printing devices.

2. Description of the Prior Art

Color printers capable of printing pages with text, graphics, and imageinformation can have very demanding memory requirements. In order toobtain the highest quality text and line graphics printing, the datatransferred to the printhead must contain all of the necessaryinformation to make the printed data visually accurate. For text andline graphics data, this can be in the form of direct, high resolution"bit-mapped" data with several bits of data associated with each printedpixel. However, for area fill graphics and images, the need for a widercolor gamut than the direct bit-mapping system can provide is desirable.This is because more colors can be produced by using half-toning for therendition of filled area and images.

The conventional approach is to fill a printing buffer using a generalpurpose CPU to render the full page in memory, and then to print it. Tofully utilize a multi-bit gray level printhead in this fashion, fourpage buffers would be required, one for each color separation of thecolors black, cyan, magenta, and yellow. A gray level printhead whichcan have a four-bit gray scale per pixel for each of the colorseparations would require a tremendous amount of memory for each page inthe buffer. At 400 dots per inch (dpi), a full 11"×17" page wouldrequire approximately 64 Mbytes. Such a size is prohibitive, and it isdesirable to store the information in a much smaller memory area withoutmaterially detracting from the quality of the finished product.

There are three requirements that need to be met in the design of a datastructure capable of providing the memory space needed to economicallystore multi-bit, gray level, color page data. Along with maintaining thememory at the smallest size possible consistent with maintaining anacceptable level of image quality, it is desirable that the memory orbuffer system be expandable from a binary system to a multi-bit printingsystem. In addition, a desirable implementation of a page buffer memorysystem would be one in which the data structure keeps the hardware coststo a minimum.

In order to obtain a more efficient memory structure for the page bufferof a color printer, it is important to recognize that the sharpness orresolution of printed information must be stored more precisely thancolor information so that the printed page will be perceived by anobserver as having full memory storage. In other words, it is possibleto sacrifice some of the resolution defining the color of the printeddata without that sacrifice being perceived by the observer. On theother hand, sharp contrast areas such as text and line graphics requiremore precise data storage and cannot tolerate the sacrifices acceptablein storing color information. The invention disclosed herein uses theseprinciples.

U.S. Pat. No. 4,270,141, issued on May 26, 1981, recognizes the factthat, although a person can detect delicate variations of brightnessacross boundaries in a picture, he cannot detect variations of colorvalue as easily. That is, even if the degree of fineness of the colorgraduations is set much less finely than that of the brightnessgraduations, the quality of the reproduction will not suffer and nopractical inconvenience will be caused. Although recognizing that theperception of color changes is less by an observer, the referencedpatent applies this principle to the brightness of the pictureinformation and not to the sharpness of the lines or text represented inthe data.

U.S. Pat. No. 4,724,431, issued on Feb. 9, 1988, is a goodrepresentation of the conventional state of the art practice of usingseparate bit maps for each color. The display system in this patentincludes three bit map memories for storing pixels representative of agraphic display image. Each of the three bit map memories is utilized todisplay graphics in a particular color. Additional colors may bedisplayed utilizing the contents of each bit map memory by combining thecolors in each bit map memory. Text information is stored in byte formin a data random access memory.

Therefore, it is desirable, and it is an object of this invention, toprovide a page buffer system for electronic color printers which makesefficient use of the memory space without sacrificing significantquality in the printed page. It is also desirable that the memory formatbe compatible with typical data arrangements received from associatedapparatus connected to the electronic printer.

SUMMARY OF THE INVENTION

There is disclosed herein a new and useful system and method for storingcolor page information in the page buffer of a color electronic printer.The system stores image and area fill data in the page buffer accordingto one format or mode and stores text and line graphic information intothe page buffer according to another format or second mode. A third modeof storage is used when the information from the host computer is in theform of device dependent bit mapped data which can be directly insertedinto the memory cells of the page buffer.

According to mode 1 of the storage system, a predetermined number ofbytes are used to store color space information for the entire areadefined by a pixel cell associated with and corresponding to the memorycell. In a specific embodiment of this invention, the memory blockcontains seven bytes and the corresponding pixel cell contains 16 pixelsarranged in a 4×4 area. Three of the memory bytes contain the colorspace data and the other four bytes of the memory block contain bitswhich form a pattern indicating that the data stored in the memory blockhas been stored according to mode 1. As stated, this mode is used forarea fill and image information where sharpness is not a prime concernand true color reproduction is important. Thus, even though individualpixels within the 16 pixel cell cannot be printed differently, the colorrepresented by the entire 16 pixel cell will be very accurate and appearto an observer to have all of the sharpness needed for image and areafill information.

According to mode 2 of the data storage system, a predetermined numberof bytes in a memory block are associated with a predetermined number ofpixels in a memory cell. For consistency with mode 1, the specificembodiment illustrates a memory block containing seven memory bytes anda pixel cell containing 16 pixels in a 4×4 arrangement. Four of theeight-bit bytes in the memory block contain the bits which correspond tothe individual pixels in the pixel cell, with two bits corresponding toeach pixel. Thus, each pixel can have a decimal value of 0, 1, 2, or 3.The other three memory bytes of the memory block contain three separatecolor bytes which point to a lookup table of 256 colors, with each byteindicating a specific color in that range of 256 colors. The fourdecimal values associated with each pixel select one of the three colorsindicated in the memory block or, in the case of the 0 decimal value, donot pick any color for printing. Thus, within a 16 pixel cell, threedifferent colors, or no color at all, can be printed at each pixel. Mode2 of the invention is used primarily for sharp contrast data, such astext and line graphics.

In mode 3 of the invention, six of the seven allocated memory bytes aredirectly bit mapped for three separate single color pixel cells of 16pixels each. Mode 3 is used when the data coming from the host computeris in device dependent form and directly bit mapped into the page buffermemory. By combining the three modes and storing the data in the pagebuffer according to the mode which will produce the desired results, anefficient and accurate data buffer can be provided without the need forthe large amount of memory required for gray level representation ofcolor pages according to prior art techniques.

BRIEF DESCRIPTION OF THE DRAWINGS

Further advantages and uses of this invention will become more apparentwhen considered in view of the following detailed description anddrawings, in which:

FIG. 1 is a block diagram of a data storage system constructed accordingto this invention;

FIG. 2 is a diagram illustrating page content and memory organization;

FIG. 3 is a diagram illustrating the general memory allocation forcorresponding pixel locations according to the invention;

FIG. 4 is a diagram illustrating a specific memory format and thecorresponding pixel area layout according to mode 1 of the invention;

FIG. 5 is a diagram illustrating general memory format and correspondingpixel area layout according to mode 2 of the invention;

FIG. 6 is a diagram illustrating specific memory values andcorresponding pixel colors for mode 2 of the invention;

FIG. 7 is a diagram illustrating specific memory values andcorresponding pixel area layouts according to mode 3 of the invention;

FIG. 8 is a block diagram illustrating data processing prior to storageof the data in the page buffer; and

FIG. 9 is a block diagram illustrating the operation of the page bufferinterface shown in FIG. 8.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Throughout the following description, similar reference charaters referto similar elements or members in all of the figures of the drawings.

Referring now to the drawings, and to FIG. 1 in particular, there isshown a block diagram of a data storage system constructed according tothis invention. The data source 10 provides the pixel information orprint data to the storage system which includes the data processor 12and the page buffer 14. The data from the data source 10 typically wouldbe in page description format and usually would originate from a deviceremote from the memory storage system. In most cases, the data would bein device independent form according to a known and predeterminedformat, such as PostScript, which is a registered trademark of AdobeSystems Incorporated. In some cases, however, the data applied to thestorage system can be in device dependent format where the data can onlybe faithfully reproduced on the particular printing device associatedwith the memory storage system, such as the printing device 16 shown inFIG. 1.

Data applied to the data processor 12 is processed and manipulated insuch a fashion that it can be stored in the page buffer 14 according toa memory efficient system as described herein. Once stored in the pagebuffer 14, the data is, at the appropriate time, transferred to theprinter device 16 for producing the hard copy output from the electronicdata. In certain applications, data may be read for printer use whilemore data is being stored in the buffer, and direct memory access (DMA)techniques may be employed with the buffer memory. In some cases, theprinter device 16 must further process the data from the page buffer 14to ascertain the correct printing sequence for reproducing theinformation stored in page buffer 14. In other words, in order tofaithfully reproduce a color defined in the page buffer 14, the printerdevice 16 must take into consideration the exact colors of the pigmentsor toners used in its printing process, and other factors of theprinting process, such as the intensity of the color printed in aspecific pixel to give the desired gray level. The data in the pagebuffer 14 can be outputted to the printer device 16 under the control ofthe data processor 12 or, in the case of direct memory access, the datain the buffer 14 can be accessed directly at the appropriate time by theprinter device 16.

FIG. 2 is a diagram illustrating page content and memory organization,in general, for the data storage system of this invention. Theinformation page 18 contains four types of print information which areto be stored in the memory 20. Text information 22 is illustrated in onequadrant of page 18. This is characterized by high contrast, sharplines, and predominant white areas. Another quadrant of page 18 includesan image 24 which could be a continuous pictorial image generated from ahigh resolution source, such as a photograph or video signals. Anotherquadrant of page 18 contains area fill information 26 which ischaracterized by the fact that it is a continuous shaded or solid colorregion covering a wide area of the page. The fourth quadrant of page 18contains line graphics 28 which are characterized by sharp lines similarto the text 22. Because of the nature of the various print informationon page 18 and its degree of perceivable deviation from exactreproduction, different methods of storing the data can be used in anefficient system for storing all of the data necessary to represent page18. In other words, to efficiently store the print information on page18, various memory formats can be used with the ultimate result being anefficient use of overall memory space consistent with high qualityreproductions.

Memory 20 shown in FIG. 2 illustrates the general organization of asolid state memory which can be used to store the information shown onpage 18. The memory 20 consists of a series of memory positions, orbytes, such as bytes 30 and 32 shown randomly in the memory 20. Thememory 20 includes a plurality of such bytes, with each byte beingaddressable at a different location within the memory 20, and thus beingillustrated at a different location within memory 20. The size of thememory 20 is dependent upon the level or detail at which the informationis stored, the size of the information, the color content of theinformation, and upon other variables. In a typical system, the memory20 could contain several million bytes. Each byte contains a pluralityof bits which can store binary data, and in this embodiment of theinvention, each byte contains eight bits.

The memory 20 is organized into blocks or slots of memory containing apredetermined number of bytes. In FIG. 2, the memory cell or block 34contains seven bytes of memory similar to byte 32. The number of bytesper allocated block or slot of memory may be changed depending upon theparticular format being used. In any event, the data stored in a blockof memory corresponds to an area on the page of information. In otherwords, a particular area or group of pixels on the page 18 correspondsto the block 34 in the memory 20, and consequently the data which willbe reproduced from block 34 is expected to provide the reproduction ofthat portion of the page shown in FIG. 2. This is not to say that aparticular memory block is always allocated to the same position on thepage 18. More accurately stated, a particular area on the page 18 isstored in a particular block of data in the memory 20, although theblock may be at a different position in the memory for different pagesof information.

FIG. 3 is a diagram illustrating the general memory allocation for thecorresponding pixel locations according to this invention. In FIG. 3,the memory cell or block 36 contains the memory bytes 38, 40, 42, 44,46, 48 and 50. This seven-byte block corresponds to the pixel cell, set,or area 52 also shown in FIG. 3. Pixel area 52 contains 16 pixelsarranged in a 4×4 pixel format. Thus, the data stored in the memoryblock 36 of the page buffer 14, shown in FIG. 1, corresponds to a 4×4pixel area 52 for the page being stored and ultimately reproduced.

The manner of storing the data in the memory block 36 depends largelyupon the type of information represented by the memory data. In otherwords, depending upon whether the information is text, image, area fill,or line graphics, the particular format used for storage in the block 36is customized or tailored to adequately store the informationefficiently consistent with a perceivable quality in the finishedproduct, or page reproduced from the stored data. Since some of thetypes of information contained on the page 18, FIG. 2, require higherreproduction contrast or sharpness, while others require lower contrastbut more faithful color reproduction, the storage requirements andmethods for different data are handled differently by this invention, aswill be discussed herein.

FIG. 4 is a diagram illustrating a specific memory format for thecorresponding pixel area layout according to mode 1 of the invention. Inmode 1, the page description data is describing an area fill orpictorial image area of the page. With this type of information,detailed sharpness or fineness of an individual line is not of primaryimportance. It is the faithful reproduction of the colors over arelatively wide area of the image that is the desired storage criteriafor efficient use of the memory consistent with accurate imagereproduction. Consequently, in storage mode 1 of this invention, suchdata is stored for a large pixel area containing several pixels asopposed to storing it for each individual pixel. In other words, theseven-byte memory slot is used efficiently to store color informationfor a group of pixels rather than for detailed fineness or sharpnessinformation for the area, which would require storage for eachindividual pixel.

According to FIG. 4, the seven-byte memory cell or block 54 containsthree bytes 56, 58 and 60 of device independent color space information.Although shown in the L*a*b* format, other color space designations maybe used such as L*u*v*. The remaining four bytes of the memory block 54contain a bit pattern which indicates, when the memory is used by theprinter device 16, that the information stored in the seven-byte memoryblock 54 has been stored according to mode 1. In this particularexample, each bit of the remaining four bytes of memory block 54contains a binary "1". As will be more apparent from the discussion ofmode 2 of the invention, three other bit patterns may be represented bythe remaining four bytes of the memory block 54 to indicate a mode 1data storage. These include all binary "0"'s, and alternating binary"0"'s and "1"s or "1"'s and "0"'s. Every two bits in the additional fourbytes corresponds to a single pixel in the printed page. As long as eachcorresponding two bits of the four bytes are the same for all 16 pixels,mode 1 is selected. In reality, mode 1 is indicated by the two-bitpatterns indicating the same color for each pixel. Mode 2 would beselected otherwise.

According to FIG. 4, all of the pixels in the pixel area 62 are to be ofthe same exact color, which is defined by bytes 56, 58 and 60 in thememory block 54. In mode 1, sharpness of the reproduced copy is not ofprime importance and, therefore, the memory has been organized tosacrifice individual pixel descriptions as opposed to more accuratedescriptions of the color content for all 16 pixels as a group. Ingeneral, according to mode 1, the data from the data source is storedusing a plurality of bytes to define the color of the complete pixelarea, and the remaining bytes of the memory block are used to indicatethat the data storage is according to mode 1.

Since the color information is in device independent form as receivedfrom the data source, the storage in the same format into the memoryblock 54 is easily handled by the processor in the memory system. Theprocessor handles the additional function of generating the identifyingword or bytes which are stored in the remaining bytes of the memoryblock 54 when mode 1 is to be indicated. Consequently, the reproducedpage derived and printed from data included in the memory block 54 wouldinclude the pixel area 62 which is accurately defined in color for allthe pixels, although there is no distinguishing information between anyparticular pixel. Storage in this format is most efficient when thecolor information is to be faithfully reproduced and sharpness of thereproduction is not a perceivable limitation at the resolution of the4×4 pixel area.

FIG. 5 is a diagram illustrating general memory format and thecorresponding pixel area layout according to mode 2 of the invention. Inmode 2, which is used when text or line graphics information is to bestored, sharpness is of primary concern, and each pixel of the 4×4 pixelarea is described separately in the memory block. According to FIG. 5,the memory block 64 contains the four sharpness or location memory bytes66, 68, 70 and 72, and the three color memory bytes 74, 76 and 78. Eachbyte contains eight bits as indicated in FIG. 5 for the first sharpnessbyte 66. All seven bytes of the memory block 64 are used to define theinformation needed to accurately reproduce each of the pixels in thepixel area 80. Each pixel of the pixel area 80 corresponds to a two-bitnumber or value in the memory block 64. For example, bits 82 and 84correspond to pixel 86, and bits 88 and 90 correspond to pixel 92.Therefore, all 16 pixels of the pixel area 80 correspond to a two-bitnumber contained in the four bytes 66, 68, 70 and 72 of the memory block64. The location of a bit pair in the memory block 64 effectivelydefines the location in the pixel area 80 of the individual pixelrepresented by the bit pair.

The color to be printed in the pixel area depends upon the value of thebit pairs in memory block 64. With two bits, each bit pair can selectfour options or colors to be printed in the corresponding pixel. One ofthe four bit pair values is used to indicate that no color will beprinted in the corresponding pixel. The other three values are used toindicate and point to an additional byte in the memory block, or athree-byte lookup table. In other words, when a bit pair indicates thatthe pixel should be printed, it selects one of the three color bytes 74,76 or 78, which further defines, in an eight-bit quantity, the specificcolor to be printed in that pixel. Having eight bits to define aparticular color allows each of the color bytes 74, 76 and 78 to pointto a single color in a range of 256 colors, as shown in the colorspectrum 94. Consequently, the 16 pixels in the pixel area 80 can beleft blank or printed in any of three total colors, with the threecolors being selected from a range of 256 colors.

FIG. 6 is a diagram illustrating specific memory values and thecorresponding pixel colors for mode 2 of the invention, and is includedherein to further define the memory and pixel arrangement according tomode 2 of the invention. In this particular example of mode 2 operation,the specific bit values for all of the bytes in the memory block 96 areillustrated. Pixel value chart 98 indicates the decimal equivalent ofthe binary bit pairs contained in the first four bytes 100, 102, 104 and106 of memory block 96. For example, bits 108 and 110 correspond to adecimal value of 2 which is indicated in the chart 98 at position 112.This location also corresponds to the pixel 114 of the pixel area 116.Bits 118 and 120 of memory block 96 represent a 0 decimal valuecorresponding to the position 122 and pixel 124 in the chart 98 and area116, respectively. Each of the values in the chart 98 can have fourdecimal values, 0, 1, 2 or 3. A value of 0 indicates that no color willbe printed in the corresponding pixel as shown at pixel 115 in pixelarea 116. The decimal values of 1, 2 and 3 indicate which of the colorbytes 126, 128 or 130 are to be used for the particular pixel indefining the color to be printed in that pixel position. A decimal valueof 1 corresponds to byte 126, a decimal value of 2 corresponds to byte128, an a decimal value of 3 corresponds to byte 130.

The three color bytes 126, 128 and 130 define three specific colors inthe color spectrum 132 which will be printed when that particular colorbyte is specified by the bit pair corresponding to a particular pixel.For example, position value 112 is a decimal 2 in chart 98 which pointsto byte 128 in memory block 96. This byte in turn has a decimal value of131 which points to the 131st color in the color spectrum 132 whichcontains 256 color selections. If the pixel position value is 1, thebyte 126 would be specified and the color 68 would be printed for thatparticular pixel. If the value of 3 is indicated for a pixel, the byte130 would be selected and the color 186 would be printed for that pixel.Note that 68, 131 and 186 are the decimal values of the three bytes 126,128 and 130, respectively. Thus, the complete 4×4 pixel area 116 caninclude three separate colors, or an absence of color, as defined foreach pixel of the pixel area. Although only two bits are used toindicate which color will be printed, a range of 256 colors is availablefor selection due to the increased bit capacity of the color selectionbytes. By using this technique for storage mode 2, some sacrificing of afull range of colors is made to obtain the advantage of being able tospecify a color for each pixel within the 4×4 pixel area.

FIG. 7 is a diagram illustrating specific memory values and thecorresponding pixel area layouts according to mode 3 of the invention.Mode 3 is used for configuring the storage memory for correspondingpixel locations when the data obtained from the data source is in devicedependent form or, in other words, the data has been formed with theknowledge of which particular colors must be printed in a specific areato provide the desired reproduction of the stored page. In mode 3, sixof the seven bytes in memory block 134 are used to define three separateoverlapping pixel areas. Bytes 136 and 138 define the pixels in thepixel area 140. Bytes 142 and 144 define the pixels in pixel area 146.Bytes 148 and 150 define the pixels in pixel area 152. Typically, pixelarea 140 would correspond to a printing or toner color of cyan, pixelarea 146 would correspond to magenta, and pixel area 152 wouldcorrespond to yellow.

Each pixel in the corresponding pixel area is represented by a singlebit in the corresponding two bytes of memory. If the bit is a binary"0", nothing is printed in the pixel area. If the bit is a binary "1",the corresponding color is printed in the pixel area. For example, thetop row of pixels in the pixel area 140 is represented by the four mostsignificant bits in the byte 136. Thus, bit 154 indicates that pixel 156should be printed in cyan. The next row of pixels in pixel area 140 isrepresented by the four least significant bits of byte 136. Thus, pixel158 is not printed in cyan because of the "0" at bit 160. The third andfourth rows in pixel area 140 are represented by the most significantand least significant four bits in the byte 138, respectively. Bysimilar analysis, the corresponding pixels in pixel areas 146 and 152are represented by the bits in bytes 142, 144, 148 and 150. Mode 3 ofthe invention is a storage format which is a bit mapped technique havingmore conventional aspects than the memory storage formats used in modes1 and 2. Mode 3 is used as an alternative to modes 1 and 2 when the datacoming from the data source has already taken into consideration theparameters of the printing device 16 and is giving device dependent datain bit mapped form to the page buffer 14.

If is emphasized that the page buffer memory formats shown for modes 1and 2 do not take into consideration further processing by the printingdevice which would involve conventional and ordinary processing as knownby those skilled in the art for reproducing the colors indicated by thedata in the page buffer. For example, in mode 1, although a particularshade of color is to be depicted for all 16 pixels of the pixel area 62,the printer may combine different colors in each pixel to produce theresultant color, or vary the "gray" level to intensify one or morecolors to produce a certain level or intensity of the desired color. Theimportant aspect is that the 16 pixel area 62 appears, to an observer atnormal distance, to represent for the entire pixel area 62 the colordefined by the color space quantities contained in bytes 56, 58 and 60of the memory block 54. As regarding mode 2, particular pixels withinthe pixel area 116 are produced in the proper color by the capabilitiesof the printing device. For example, with a conventional gray levelcolor printing scheme, a particular pixel may contain up to threeoverlayed subtractive colors each having an intensity depending upon thelevel needed to produce the resultant color. In some cases, the printerdevice electronics may interpolate between adjacent 16-pixel areas andvary the printed pixel colors from those stored in the correspondingmemory block to obtain more accurate color reproductions across thepage.

FIG. 8 is a block diagram illustrating data processing which occursprior to storage of the data in the page buffer, as shown generally inFIG. 1. According to FIG. 8, page description information or data isapplied to the raster image processor (RIP) 136 where, according totechniques known by those skilled in the art, the information isconverted or processed into specific pixel and color data. In the caseof text or graphics, this data is transferred to the page bufferinterface 138 which is described in more detail in connection with FIG.9. In the case of area fill information existing in the descriptiondata, the information is transferred directly to the page buffer 14 asno further processing by the interface 138 is necessary to provide thedata format needed for storage into the page buffer 14.

Image information, which normally would come from a separate source, isprocessed by the image processor 140 to provide the mode 1 format forstorage of the image data in the page buffer 14. The function of theprocessor 140 is to convert the image information, which may be inanalog form, into digital form and arrangement for proper insertion intothe page buffer although the exact location of the data of the page maybe defined in the page description information. Image processors forconverting image or video for storage in a solid state memory are wellknow to those skilled in the art. The processing means provided bydevices 136, 138 and 140 supplies the appropriate data format andidentity to the page buffer 14.

FIG. 9 is a block diagram illustrating the operation of the page bufferinterface shown in FIG. 8. When the raster image processor 136 (FIG. 8)generates data for one page, it fills the page buffer by writting to thex,y position address registers 142, the color register 144, and the32-bit, one dimensional, bit-map or pixel register 146. The bit-mapregister 146 associated with the position registers 142 determines thepixels which are printed with the color specified in the color register144. Linear address generator 166 provides the address data to thebuffers 152 and 156 from the data in the registers 142.

By having the memory structure organized with 4 by 4 pixels for eachcell, the conversion requires 8 memory read and write operations. The32-bit register 146 covers eight 4 by 4 cells. In order to write thedata into the page buffer, each cell in the page buffer needs to be readand checked with the incoming data to determine the modification of thesharpness cell word and the color cell word.

As shown in FIG. 9, the 24-bit color information in the register 144 iscompressed or reduced in possible variations by the 8-bit extractor 148.This extractor provides for up to 256 colors out of the 24-bit colordesignation contained in register 144. A similar extraction isaccomplished by the 8-bit extractor 150 for the 24 bits of colorinformation in the color cell buffer 152, although the format ofrepresenting colors in the buffer 152 is different than that used in theregister 144. The extractor color data is compared in the 8-bitcomparator 154 to determine whether the two colors are in the samerange. The sharpness buffer 156 is arranged in 4 by 4 cells whichcontain 32 bits. The locator 158 locates the largest 2-bit number in the4 by 4 pixel sharpness buffer 156. This value is used by the bit mapper160 to encode the sharpness value of the current pixel as accomplishedby the cell modifier 162. According to the result of the colorcomparison, the cell in the color buffer 152 will be modified by thecolor cell modifier 164 and written back to the color cell buffer 152.The sharpness buffer data is modified by adding the current pixel valueand writing the result back to the sharpness buffer 156.

It is emphasized that numerous changes may be made in theabove-described system without departing from the teachings of theinvention. It is intended that all of the matter contained in theforegoing description, or shown in the accompanying drawings, shall beinterpreted as illustrative rather than limiting.

We claim as our invention:
 1. A data storage system for an electroniccolor printer, said system comprising:means for inputting printing data;a plurality of memory cells for storage of processed data whichrepresents print information for a plurality of pixels, with each cellcontaining a plurality of memory bytes; means for processing saidprinting data into the processed data for storage into said memorycells, said processing means indicating whether said processed data isto be stored according to one of at least two modes of storage, with afirst of said modes storing in a memory cell processed data whichrepresents only one color for all of the pixels corresponding to thatcell, and a second of said modes storing in a memory cell processed datawhich represents particular colors for each individual pixelcorresponding to that cell; and means for outputting the stored data toa printing mechanism.
 2. The color printer data storage system of claim1 wherein the inputted printing data is in device independent form. 3.The color printer data storage system of claim 2 wherein the processeddata stored in a memory cell according to the first mode is in deviceindependent form.
 4. The color printer data storage system of claim 2wherein the processed data stored in a memory cell according to thesecond mode is in device dependent form.
 5. The color printer datastorage system of claim 1 wherein there are sufficient memory cells todefine one complete page of printing data.
 6. The color printer datastorage system of claim 1 wherein each memory cell contains seveneight-bit bytes.
 7. The color printer data storage system of claim 1wherein each memory cell represents print information for a group ofsixteen adjacent pixels.
 8. The color printer data storage system ofclaim 1 wherein a third mode of storage is available, with said thirdmode storing in a memory cell device dependent binary data whichindicates, for a particular color, which pixels are to be printed. 9.The color printer data storage system of claim 8 wherein each cell isallocated a predetermined number of bytes for each of three colors forprinting the corresponding pixels.
 10. The color printer data storagesystem of claim 1 wherein the first mode stores color information inuniform color space format.
 11. The color printer data storage system ofclaim 10 wherein color space variables L*, a*, and b* are storedseparately in eight-bit bytes.
 12. The color printer data storage systemof claim 1 wherein the mode of storage in the memory cells is indicatedby a pattern of bits in a plurality of bytes of the cell.
 13. The colorprinter data storage system of claim 12 wherein the mode is indicated bya plurality of two-bit binary numbers.
 14. The color printer datastorage system of claim 13 wherein the second mode is indicated when anyof the two-bit binary numbers are different.
 15. The color printer datastorage system of claim 13 wherein the first mode is indicated when allof the two-bit binary numbers are the same.
 16. The color printer datastorage system of claim 1 wherein the data stored in the second modeincludes a plurality of bits which correspond to separate pixellocations and which point to additional bit words in the same memorycell which specify the color which is to be printed for what pixellocation.
 17. The color printer data storage system of claim 16 whereinthe separate pixel data occupies four eith-bit bytes of a memory cell,and the bit words which specify the color occupy three eight-bit bytes.18. A method for storing data in a page buffer of an electronic colorprinter, said method including the steps of:processing data from anotherdevice and arranging it for storage in memory cells according to firstand second modes of storage, with each memory cell corresponding to aplurality of adjacent pixels; determining whether the storage ofprocessed data is to be according to the first or second mode for aparticular memory cell of the page buffer; storing the processed data,if the first mode is determined, with each memory cell defining a singlecolor for all the pixels corresponding to that cell; and storing theprocessed data, if the second mode is determined, with each memory celldefining a particular color for each individual pixel corresponding tothat cell.
 19. The method of claim 18 for storing data wherein the firstmode is utilized for storage when the data predominantly representsimages or area fill graphics.
 20. The method of claim 18 for storingdata wherein the second mode is utilized for storage when the datapredominantly represents text of line graphics.
 21. The method of claim18 for storing data wherein the data is in device independent form. 22.The method of claim 18 for storing data wherein the color defined by thedata in the first mode is in uniform color space format.
 23. The methodof claim 18 for storing data wherein the allocated size of the memorycells used for storage in the first and second modes is the same.
 24. Amethod for storing data in a page buffer of an electronic color printer,said method including the steps of:processing data from one or moreother devices and arranging it for storage in a plurality of seven-bytememory cells according to at least first and second modes of storage,with each memory cell corresponding to a group of sixteen adjacentpixels; determining whether the storage of processed data is to beaccording to the first or second mode for a particular memory cell ofthe page buffer, with the first mode being used for images and area fillgraphics, and the second mode being used for text and line graphics;storing the processed data, if the first mode is determined, with threebytes in each memory cell defining a single color in uniform color spaceformat for all the pixels correspondig to that cell; and storing theprocessed data, if the second mode is determined, with three color bytesin each memory cell defining a particular color, and four location bytesof each memory cell having sixteen two-bit binary numbers whichdesignate, for each of the corresponding pixels, which, if any, of thecolors defined by the three color bytes represent the desired color ofthe printed pixel.
 25. A method for storing printer data in a pagebuffer of an electronic, gray scale, color printer, said methodincluding the steps of:dividing the buffer into a plurality of memorycells, with each cell corresponding to a predetermined number ofadjacent pixels in the printed page; processing device independent datafrom another device; and storing the processed data in at least aportion of the memory cells, with each cell containing one uniform colorspace designation for all the pixels corresponding to that cell.
 26. Themethod of claim 25 for storing printer data including the step ofstoring a predetermined bit pattern in a portion of the memory cell toindicate that said method was used for data storage.
 27. A method forstoring printer data in a page buffer of an electronic, gray scale,color printer, said method including the steps of:dividing the bufferinto a plurality of memory cells, with each cell containing seven memorybytes and corresponding to a set of sixteen adjacent pixels in theprinted page; processing device independent data from another device;determining when the processed data represents image or area fillgraphics information; storing, when the processed data represents imageor area fill graphics information for all of the pixels in a particularpixel set, a color designation in three of the bytes of thecorresponding memory cell inuniform color space format; and storing,when the processed data represents image or area fill graphicsinformation for all of the pixel in a parricular pixel set, apredetermined bit pattern in four bytes of the memory cell to indicatethat said method was used for data storage.
 28. A method of savingprinter data in a page buffer of an electronic, gray scale, colorprinter, said method including the steps of:dividing the buffer into aplurality of memory cells, with each cell corresponding to apredetermined number of adjacent pixels in the printed page; processingdevice independent data from another device; and storing the processeddata in at least a portion of the memory cells, with each cellcontaining a plurality of bits which correspond to individual pixellocations and which point to additional bit words in the same memorycell which specify the color wich is to be printed for that pixellocation.
 29. A method for storing printer data in a page buffer of anelectronic, gray scals, color printer, said method including the stepsof:dividing the buffer into a plurality of memory cells, with eachcontaining seven memory bytes and corresponding to a set of sixteenadjacent pixels in the printed page; processing device independent datafrom another device; determined when the processed data represents textor line graphics information; storing, when the processed datarepresents text or line graphics information for all of the pixels in aparticular pixel set, two-bit pixel location values in four bytes of thecorresponding memory cell, with each two-bit value designating fourprint conditions for the corresponding pixel; and storing, when theprocessed data represents text or line graphics information for all ofthe pixels in a particular pixel set, eight-bit color value pointers inthree bytes of the corresponding memory cell, said three bytes beingselected in three of said four print conditions to specify a color forprinting, with the fourth designated condition indicating that no coloris to be printed.
 30. A method for storing gray scale, color, pageinformation in memory cells which correspond to adjacent pixel areas,said method including the steps of:selecting between first and secondmodes of storage, with said first mode being selected for image and areafill information in an adjacent pixel area of the page, and with saidsecond mode being selected for text and line graphics information in anadjacent pixel area of the page; storing first mode information in amulti-byte memory cell, with the cell defining a single color for allthe adjacent pixels corresponding to that cell; and storing second modeinformation in a multi-byte memory cell, with the cell defining aparticular color for each individual pixel in the corresponding adjacentpixel area.